package com.cn.server.module.login.handler;

import com.cn.common.core.annotion.SocketCommand;
import com.cn.common.core.annotion.SocketModule;
import com.cn.common.core.model.Result;
import com.cn.common.core.serial.Serializer;
import com.cn.common.core.session.Session;
import com.cn.common.module.ModuleId;
import com.cn.common.module.login.UserCmd;
import com.cn.common.module.login.request.LoginRequest;
import com.cn.common.module.login.response.LoginResponse;

/**
 * 用户模块
 */
@SocketModule(module = ModuleId.USER)
public interface UserHandler {


    /**
     * 登录帐号
     *
     * @param channel
     * @param data    {@link LoginRequest}
     * @return
     */
    @SocketCommand(cmd = UserCmd.LOGIN)
    public <T extends Serializer> Result<T> login(Session session, byte[] data);

}
